.\" Copyright (C) 1994, 1995, Daniel Quinlan <quinlan@yggdrasil.com>
.\" Copyright (C) 2002-2008, 2017, Michael Kerrisk <mtk.manpages@gmail.com>
.\" Copyright (C) 2023, Alejandro Colomar <alx@kernel.org>
.\"
.\" SPDX-License-Identifier: GPL-3.0-or-later
.\"
.TH proc_pid_cmdline 5 2024-06-15 "Linux man-pages 6.9.1"
.SH NAME
/proc/pid/cmdline \- command line
.SH DESCRIPTION
.TP
.IR /proc/ pid /cmdline
This read-only file holds the complete command line for the process,
unless the process is a zombie.
.\" In Linux 2.3.26, this also used to be true if the process was swapped out.
In the latter case, there is nothing in this file:
that is, a read on this file will return 0 characters.
.IP
For processes which are still running,
the command-line arguments appear in this file
in the same layout as they do in process memory:
If the process is well-behaved,
it is a set of strings separated by null bytes (\[aq]\[rs]0\[aq]),
with a further null byte after the last string.
.IP
This is the common case,
but processes have the freedom to
override the memory region and
break assumptions about the contents or format of the
.IR /proc/ pid /cmdline
file.
.IP
If, after an
.BR execve (2),
the process modifies its
.I argv
strings, those changes will show up here.
This is not the same thing as modifying the
.I argv
array.
.IP
Furthermore, a process may change the memory location that this file refers via
.BR prctl (2)
operations such as
.BR PR_SET_MM_ARG_START .
.IP
Think of this file as the command line that the process wants you to see.
.SH SEE ALSO
.BR proc (5)
